package com.joolun.common.corp;

public class TenantContext {
    // 使用ThreadLocal确保线程安全，每个线程独立存储主体ID
    private static final ThreadLocal<String> TENANT_ID_HOLDER = new ThreadLocal<>();

    // 私有构造函数，防止外部实例化
    private TenantContext() {}

    // 设置当前主体ID
    public static void setTenantId(String tenantId) {
        TENANT_ID_HOLDER.set(tenantId);
    }

    // 获取当前主体ID
    public static String getTenantId() {
        return TENANT_ID_HOLDER.get();
    }

    // 清除当前主体ID（请求结束后调用，避免内存泄漏）
    public static void clear() {
        TENANT_ID_HOLDER.remove();
    }

    // 重置租户上下文（可选方法）
    public static void reset() {
        clear();
    }
}
